// $ANTLR 3.3 Nov 30, 2010 12:45:30 /home/matthijs/paf/RichRail.g 2011-05-01 16:18:20

	package com.richrail.console.dsl;


import org.antlr.runtime.BaseRecognizer;
import org.antlr.runtime.CharStream;
import org.antlr.runtime.DFA;
import org.antlr.runtime.EarlyExitException;
import org.antlr.runtime.Lexer;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.RecognizerSharedState;

public class RichRailLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__7=7;
    public static final int T__8=8;
    public static final int T__9=9;
    public static final int T__10=10;
    public static final int T__11=11;
    public static final int T__12=12;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int ID=4;
    public static final int NUMBER=5;
    public static final int WS=6;

    // delegates
    // delegators

    public RichRailLexer() {;} 
    public RichRailLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public RichRailLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "/home/matthijs/RichRail.g"; }

    // $ANTLR start "T__7"
    public final void mT__7() throws RecognitionException {
        try {
            int _type = T__7;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:7:6: ( ';' )
            // /home/matthijs/paf/RichRail.g:7:8: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__7"

    // $ANTLR start "T__8"
    public final void mT__8() throws RecognitionException {
        try {
            int _type = T__8;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:8:6: ( 'new' )
            // /home/matthijs/paf/RichRail.g:8:8: 'new'
            {
            match("new"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__8"

    // $ANTLR start "T__9"
    public final void mT__9() throws RecognitionException {
        try {
            int _type = T__9;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:9:6: ( 'train' )
            // /home/matthijs/paf/RichRail.g:9:8: 'train'
            {
            match("train"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__9"

    // $ANTLR start "T__10"
    public final void mT__10() throws RecognitionException {
        try {
            int _type = T__10;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:10:7: ( 'wagon' )
            // /home/matthijs/paf/RichRail.g:10:9: 'wagon'
            {
            match("wagon"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__10"

    // $ANTLR start "T__11"
    public final void mT__11() throws RecognitionException {
        try {
            int _type = T__11;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:11:7: ( 'numseats' )
            // /home/matthijs/paf/RichRail.g:11:9: 'numseats'
            {
            match("numseats"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__11"

    // $ANTLR start "T__12"
    public final void mT__12() throws RecognitionException {
        try {
            int _type = T__12;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:12:7: ( 'add' )
            // /home/matthijs/paf/RichRail.g:12:9: 'add'
            {
            match("add"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__12"

    // $ANTLR start "T__13"
    public final void mT__13() throws RecognitionException {
        try {
            int _type = T__13;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:13:7: ( 'to' )
            // /home/matthijs/paf/RichRail.g:13:9: 'to'
            {
            match("to"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__13"

    // $ANTLR start "T__14"
    public final void mT__14() throws RecognitionException {
        try {
            int _type = T__14;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:14:7: ( 'getnumseats' )
            // /home/matthijs/paf/RichRail.g:14:9: 'getnumseats'
            {
            match("getnumseats"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__14"

    // $ANTLR start "T__15"
    public final void mT__15() throws RecognitionException {
        try {
            int _type = T__15;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:15:7: ( 'delete' )
            // /home/matthijs/paf/RichRail.g:15:9: 'delete'
            {
            match("delete"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__15"

    // $ANTLR start "T__16"
    public final void mT__16() throws RecognitionException {
        try {
            int _type = T__16;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:16:7: ( 'remove' )
            // /home/matthijs/paf/RichRail.g:16:9: 'remove'
            {
            match("remove"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__16"

    // $ANTLR start "T__17"
    public final void mT__17() throws RecognitionException {
        try {
            int _type = T__17;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:17:7: ( 'from' )
            // /home/matthijs/paf/RichRail.g:17:9: 'from'
            {
            match("from"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__17"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:81:3: ( ( 'a' .. 'z' ) ( 'a' .. 'z' | '0' .. '9' )* )
            // /home/matthijs/paf/RichRail.g:81:6: ( 'a' .. 'z' ) ( 'a' .. 'z' | '0' .. '9' )*
            {
            // /home/matthijs/paf/RichRail.g:81:6: ( 'a' .. 'z' )
            // /home/matthijs/paf/RichRail.g:81:7: 'a' .. 'z'
            {
            matchRange('a','z'); 

            }

            // /home/matthijs/paf/RichRail.g:81:17: ( 'a' .. 'z' | '0' .. '9' )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='a' && LA1_0<='z')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // /home/matthijs/paf/RichRail.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "NUMBER"
    public final void mNUMBER() throws RecognitionException {
        try {
            int _type = NUMBER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:82:7: ( ( '0' .. '9' )+ )
            // /home/matthijs/paf/RichRail.g:82:10: ( '0' .. '9' )+
            {
            // /home/matthijs/paf/RichRail.g:82:10: ( '0' .. '9' )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // /home/matthijs/paf/RichRail.g:82:10: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUMBER"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/matthijs/paf/RichRail.g:83:3: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
            // /home/matthijs/paf/RichRail.g:83:6: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            {
            // /home/matthijs/paf/RichRail.g:83:6: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( ((LA3_0>='\t' && LA3_0<='\n')||(LA3_0>='\f' && LA3_0<='\r')||LA3_0==' ') ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // /home/matthijs/paf/RichRail.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt3 >= 1 ) break loop3;
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    public void mTokens() throws RecognitionException {
        // /home/matthijs/paf/RichRail.g:1:8: ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | ID | NUMBER | WS )
        int alt4=14;
        alt4 = dfa4.predict(input);
        switch (alt4) {
            case 1 :
                // /home/matthijs/paf/RichRail.g:1:10: T__7
                {
                mT__7(); 

                }
                break;
            case 2 :
                // /home/matthijs/paf/RichRail.g:1:15: T__8
                {
                mT__8(); 

                }
                break;
            case 3 :
                // /home/matthijs/paf/RichRail.g:1:20: T__9
                {
                mT__9(); 

                }
                break;
            case 4 :
                // /home/matthijs/paf/RichRail.g:1:25: T__10
                {
                mT__10(); 

                }
                break;
            case 5 :
                // /home/matthijs/paf/RichRail.g:1:31: T__11
                {
                mT__11(); 

                }
                break;
            case 6 :
                // /home/matthijs/paf/RichRail.g:1:37: T__12
                {
                mT__12(); 

                }
                break;
            case 7 :
                // /home/matthijs/paf/RichRail.g:1:43: T__13
                {
                mT__13(); 

                }
                break;
            case 8 :
                // /home/matthijs/paf/RichRail.g:1:49: T__14
                {
                mT__14(); 

                }
                break;
            case 9 :
                // /home/matthijs/paf/RichRail.g:1:55: T__15
                {
                mT__15(); 

                }
                break;
            case 10 :
                // /home/matthijs/paf/RichRail.g:1:61: T__16
                {
                mT__16(); 

                }
                break;
            case 11 :
                // /home/matthijs/paf/RichRail.g:1:67: T__17
                {
                mT__17(); 

                }
                break;
            case 12 :
                // /home/matthijs/paf/RichRail.g:1:73: ID
                {
                mID(); 

                }
                break;
            case 13 :
                // /home/matthijs/paf/RichRail.g:1:76: NUMBER
                {
                mNUMBER(); 

                }
                break;
            case 14 :
                // /home/matthijs/paf/RichRail.g:1:83: WS
                {
                mWS(); 

                }
                break;

        }

    }


    protected DFA4 dfa4 = new DFA4(this);
    static final String DFA4_eotS =
        "\2\uffff\10\12\3\uffff\3\12\1\32\6\12\1\41\2\12\1\uffff\1\12\1\45"+
        "\4\12\1\uffff\3\12\1\uffff\3\12\1\60\1\12\1\62\1\63\3\12\1\uffff"+
        "\1\12\2\uffff\1\12\1\71\1\72\2\12\2\uffff\1\75\1\12\1\uffff\2\12"+
        "\1\101\1\uffff";
    static final String DFA4_eofS =
        "\102\uffff";
    static final String DFA4_minS =
        "\1\11\1\uffff\1\145\1\157\1\141\1\144\3\145\1\162\3\uffff\1\167"+
        "\1\155\1\141\1\60\1\147\1\144\1\164\1\154\1\155\1\157\1\60\1\163"+
        "\1\151\1\uffff\1\157\1\60\1\156\1\145\1\157\1\155\1\uffff\1\145"+
        "\2\156\1\uffff\1\165\1\164\1\166\1\60\1\141\2\60\1\155\2\145\1\uffff"+
        "\1\164\2\uffff\1\163\2\60\1\163\1\145\2\uffff\1\60\1\141\1\uffff"+
        "\1\164\1\163\1\60\1\uffff";
    static final String DFA4_maxS =
        "\1\172\1\uffff\1\165\1\162\1\141\1\144\3\145\1\162\3\uffff\1\167"+
        "\1\155\1\141\1\172\1\147\1\144\1\164\1\154\1\155\1\157\1\172\1\163"+
        "\1\151\1\uffff\1\157\1\172\1\156\1\145\1\157\1\155\1\uffff\1\145"+
        "\2\156\1\uffff\1\165\1\164\1\166\1\172\1\141\2\172\1\155\2\145\1"+
        "\uffff\1\164\2\uffff\1\163\2\172\1\163\1\145\2\uffff\1\172\1\141"+
        "\1\uffff\1\164\1\163\1\172\1\uffff";
    static final String DFA4_acceptS =
        "\1\uffff\1\1\10\uffff\1\14\1\15\1\16\15\uffff\1\7\6\uffff\1\2\3"+
        "\uffff\1\6\12\uffff\1\13\1\uffff\1\3\1\4\5\uffff\1\11\1\12\2\uffff"+
        "\1\5\3\uffff\1\10";
    static final String DFA4_specialS =
        "\102\uffff}>";
    static final String[] DFA4_transitionS = {
            "\2\14\1\uffff\2\14\22\uffff\1\14\17\uffff\12\13\1\uffff\1\1"+
            "\45\uffff\1\5\2\12\1\7\1\12\1\11\1\6\6\12\1\2\3\12\1\10\1\12"+
            "\1\3\2\12\1\4\3\12",
            "",
            "\1\15\17\uffff\1\16",
            "\1\20\2\uffff\1\17",
            "\1\21",
            "\1\22",
            "\1\23",
            "\1\24",
            "\1\25",
            "\1\26",
            "",
            "",
            "",
            "\1\27",
            "\1\30",
            "\1\31",
            "\12\12\47\uffff\32\12",
            "\1\33",
            "\1\34",
            "\1\35",
            "\1\36",
            "\1\37",
            "\1\40",
            "\12\12\47\uffff\32\12",
            "\1\42",
            "\1\43",
            "",
            "\1\44",
            "\12\12\47\uffff\32\12",
            "\1\46",
            "\1\47",
            "\1\50",
            "\1\51",
            "",
            "\1\52",
            "\1\53",
            "\1\54",
            "",
            "\1\55",
            "\1\56",
            "\1\57",
            "\12\12\47\uffff\32\12",
            "\1\61",
            "\12\12\47\uffff\32\12",
            "\12\12\47\uffff\32\12",
            "\1\64",
            "\1\65",
            "\1\66",
            "",
            "\1\67",
            "",
            "",
            "\1\70",
            "\12\12\47\uffff\32\12",
            "\12\12\47\uffff\32\12",
            "\1\73",
            "\1\74",
            "",
            "",
            "\12\12\47\uffff\32\12",
            "\1\76",
            "",
            "\1\77",
            "\1\100",
            "\12\12\47\uffff\32\12",
            ""
    };

    static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
    static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
    static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
    static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
    static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
    static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
    static final short[][] DFA4_transition;

    static {
        int numStates = DFA4_transitionS.length;
        DFA4_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]);
        }
    }

    class DFA4 extends DFA {

        public DFA4(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 4;
            this.eot = DFA4_eot;
            this.eof = DFA4_eof;
            this.min = DFA4_min;
            this.max = DFA4_max;
            this.accept = DFA4_accept;
            this.special = DFA4_special;
            this.transition = DFA4_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( T__7 | T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | ID | NUMBER | WS );";
        }
    }
 

}